summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFernando S <fsahmkow27@gmail.com>2022-11-04 01:25:34 +0100
committerGitHub <noreply@github.com>2022-11-04 01:25:34 +0100
commit3794851f7f46d2112cffc146e4c788beef56bf38 (patch)
tree689e7c73fc8a3cca3da08f28eaffc895e871c773
parentMerge pull request #9097 from liamwhite/intel-spv-compiler (diff)
parentvk_blit_screen: recreate swapchain images on guest format change (diff)
downloadyuzu-3794851f7f46d2112cffc146e4c788beef56bf38.tar
yuzu-3794851f7f46d2112cffc146e4c788beef56bf38.tar.gz
yuzu-3794851f7f46d2112cffc146e4c788beef56bf38.tar.bz2
yuzu-3794851f7f46d2112cffc146e4c788beef56bf38.tar.lz
yuzu-3794851f7f46d2112cffc146e4c788beef56bf38.tar.xz
yuzu-3794851f7f46d2112cffc146e4c788beef56bf38.tar.zst
yuzu-3794851f7f46d2112cffc146e4c788beef56bf38.zip
-rw-r--r--src/video_core/renderer_vulkan/vk_blit_screen.cpp6
-rw-r--r--src/video_core/renderer_vulkan/vk_blit_screen.h5
2 files changed, 10 insertions, 1 deletions
diff --git a/src/video_core/renderer_vulkan/vk_blit_screen.cpp b/src/video_core/renderer_vulkan/vk_blit_screen.cpp
index cb7fa2078..89426121f 100644
--- a/src/video_core/renderer_vulkan/vk_blit_screen.cpp
+++ b/src/video_core/renderer_vulkan/vk_blit_screen.cpp
@@ -480,11 +480,15 @@ void BlitScreen::RefreshResources(const Tegra::FramebufferConfig& framebuffer) {
fsr.reset();
}
- if (framebuffer.width == raw_width && framebuffer.height == raw_height && !raw_images.empty()) {
+ if (framebuffer.width == raw_width && framebuffer.height == raw_height &&
+ framebuffer.pixel_format == pixel_format && !raw_images.empty()) {
return;
}
+
raw_width = framebuffer.width;
raw_height = framebuffer.height;
+ pixel_format = framebuffer.pixel_format;
+
ReleaseRawImages();
CreateStagingBuffer(framebuffer);
diff --git a/src/video_core/renderer_vulkan/vk_blit_screen.h b/src/video_core/renderer_vulkan/vk_blit_screen.h
index 29e2ea925..a2b73ec54 100644
--- a/src/video_core/renderer_vulkan/vk_blit_screen.h
+++ b/src/video_core/renderer_vulkan/vk_blit_screen.h
@@ -28,6 +28,10 @@ namespace VideoCore {
class RasterizerInterface;
}
+namespace Service::android {
+enum class PixelFormat : u32;
+}
+
namespace Vulkan {
struct ScreenInfo;
@@ -156,6 +160,7 @@ private:
u32 raw_width = 0;
u32 raw_height = 0;
+ Service::android::PixelFormat pixel_format{};
std::unique_ptr<FSR> fsr;
};